<script>
  //   给你一个下标从 0 开始的整数数组 nums ，该数组的大小为 n ，请你计算 nums[j] - nums[i] 能求得的 最大差值 ，其中 0 <= i < j < n 且 nums[i] < nums[j] 。

  //   返回 最大差值 。如果不存在满足要求的 i 和 j ，返回 -1 。

  //   来源：力扣（LeetCode）
  //   链接：https://leetcode.cn/problems/maximum-difference-between-increasing-elements

  /**
   * 前缀最小值
   * 首先看条件 nums[i] < nums[j]
   * 一开始 可以定义一个 premin = nums[0]
   * i = 1 如果 nums[i] > premin 说明满足条件 更新最大差值
   * 如果不满足就返回 -1
   * 也就是一次循环就可以判断出结果
   */

  var nums = [9, 4, 3, 2];
  /**
   * @param {number[]} nums
   * @return {number}
   */
  var maximumDifference = function (nums) {
    var ans = -1;
    var n = nums.length,
      premin = nums[0];
    for (let i = 1; i < n; i++) {
      if (nums[i] > premin) {
        ans = Math.max(ans, nums[i] - premin);
      } else {
        premin = nums[i];
      }
    }

    return ans;
  };

  console.log(maximumDifference(nums));
</script>
